The present invention relates generally to USB networking, and more specifically to reducing the power consumed by transactions initiated by USB host controllers.
Universal Serial Bus (USB) networks have become the most popular paths for data transmission between computers and peripheral devices. Specifically, USB networks are used as personal-area wired networks to transfer data between a desktop, notebook or other computer system and devices such as printers, scanners, cameras, speakers, mice, keyboards, and hard disks. A computer may have one or more USB ports, and these may be extended further using one or more hubs.
Currently, the USB 2 standard has become very popular, replacing the USB 1 standard, with which it is backward compatible. USB 2 supports data transfer rates of 480 Mb/s, the so called “high speed” rate, while USB 1 supports 12 Mb/s, “full speed” and 1.5 Mb/s, “low speed” rates. Typically, peripheral devices such as mice and keyboards operate at a lower speed to reduce component costs, while higher bandwidth devices, such as camcorders, operate at the high speed.
These peripheral devices operate as slave devices on the USB bus. That is, they must be queried by the USB host controller as to whether they have data to provide. For example, a mouse is periodically asked by the USB controller whether it has been moved. In order to ask the mouse whether it has moved, the USB controller reads data, such as a bus address, from a system memory. Each of these memory reads consumes power. For example, one or more devices may need to be woken from a low power or sleep state. Also, reading data from a memory generates voltage transactions across various stray capacitances. These voltage changes require current, which causes power to be dissipated.
This power dissipation is undesirable, particularly in battery powered devices, such as laptop computers. Thus, what is needed are circuits, methods, and apparatus that reduce the power consumed by these memory reads.